﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MainGame.GamePlay
{

  public enum Backgrounds
  {
    Tavolo = 0,
    ClassicGreen = 1,
    ClassicRed = 2,
    Tovaglia = 3,
    Squares = 4,
    Legno = 5,
    Carousel = 6,
    NumBackgrounds = 7
  }

  public enum Decks
  {
    Napoletane = 0,
    Siciliane = 1,
    Piacentine = 2,
    Bolognesi = 3,
    Romagnole = 4,
    Bergamasche = 5,
    NumDecks = 6
  }

  public delegate void ClickPlayerCard(int player_index, Card c);
  public delegate void ClickBlockCard(int block_index, int card_index);
  public delegate void ClickPack(int player_index, int card_quantity);
  public delegate void ClickExtracted(int player_index);
  public delegate void ReleasePlayerCard(int player_index, Card c, List<Card> selectedCards);
  public delegate bool ReplaceCards(int player_index, int card_index);
  public delegate void OnExit();
  public delegate void OnTutorial();
  public delegate void OnMenuPause();
  public delegate void OnMatchExit();


  /// <summary>
  /// Il servizio di disegno lancia alcuni eventi in corrispondenza dei click del
  /// giocatore sulle varie entitá disegnate
  /// </summary>
  public interface IBoardRenderer
  {
    event ReleasePlayerCard ReleasePlayerCard;
    event OnExit OnExit;
    event OnMenuPause OnMenuPause;
    event OnMatchExit OnMatchExit;
  }
}
